// 该案例是一个创建按钮的应用实例，在创建的窗口中创建一个按钮名称为“Button”的按钮
// 当创建按钮之后需要调用gtk_widget_show函数来将该按钮显示出来
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <gtk/gtk.h>

// 按键的回调处理函数
void button_deal(GtkWidget *widget, gpointer *data){
	// 输出按键的状态
	g_print("Button event:%s\n",data);
}

int main(int argc, char *argv[]){
	
	// 窗口和按键对应的指针
	GtkWidget *window,*button;

	char title[] = "test";

	// 初始化函数
	gtk_init(&argc, &argv);
	// 创建窗体
	window = gtk_window_new(GTK_WINDOW_TOPLEVEL);

	// 设置窗体的大小
	gtk_window_set_title(GTK_WINDOW(window), title);

	gtk_widget_set_usize(window,300,300);

	gtk_widget_set_uposition(window,200,300);

	// 创建带标号的按钮
	button = gtk_button_new_with_label("Button");
	// 登记按钮pressed信号的回调函数
	gtk_signal_connect(GTK_OBJECT(button),"pressed", GTK_SIGNAL_FUNC(button_deal),"pressed");
	// 登记按钮released信号的回调函数
	gtk_signal_connect(GTK_OBJECT(button),"released",GTK_SIGNAL_FUNC(button_deal),"released");
	// 登记按钮clicked信号的回调函数
	gtk_signal_connect(GTK_OBJECT(button),"clicked",GTK_SIGNAL_FUNC(button_deal),"clicked");
	// 登记按钮enter信号的回调函数
	gtk_signal_connect(GTK_OBJECT(button),"enter",GTK_SIGNAL_FUNC(button_deal),"enter");
	// 登记按钮leave信号的回调函数
	gtk_signal_connect(GTK_OBJECT(button),"leave",GTK_SIGNAL_FUNC(button_deal),"leave");

	// 把按钮加入窗体
	gtk_container_add(GTK_CONTAINER(window),button);

	// 登记退出窗体的回调函数
	gtk_signal_connect(GTK_OBJECT(window),"destroy",G_CALLBACK(gtk_main_quit),NULL);
	// 显示按钮
	gtk_widget_show(button);
	// 显示窗体
	gtk_widget_show(window);

	gtk_main();
	return 0;

}

